package ar.com.sectorwine.dto;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;

import ar.com.sectorwine.entities.InteresStock;
import ar.com.sectorwine.entities.Stock;
import excepciones.ExcepcionGeneral;

@Repository
public class GraficoDTOMapper {

	private static final Logger logger = LoggerFactory
			.getLogger(GraficoDTOMapper.class);

	public GraficoDTO obtenerDatosGrafico(List<InteresStock> listaInteresados,
			Date fechaCreacion, Date fechaVencimiento, Date fechaVendido) {

		GraficoDTO graficoDTO = new GraficoDTO();
		SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
		graficoDTO.setFechaCreacion(sdf.format(fechaCreacion));
		DatosGraficoDTO datoCreacion = new DatosGraficoDTO();
		datoCreacion.setContadorInteresados(0);

		datoCreacion.setDia(graficoDTO.getFechaCreacion());

		graficoDTO.getDatos().add(datoCreacion);

		for (InteresStock interesStock : listaInteresados) {
			boolean existe = false;
			for (DatosGraficoDTO dato : graficoDTO.getDatos()) {
				if (dato.getDia().equals(
						sdf.format(interesStock.getFechaPrimerAcceso()))) {
					dato.setContadorInteresados(dato.getContadorInteresados() + 1);
					existe = true;
					break;
				}
			}
			if (!existe) {
				DatosGraficoDTO datoNuevo = new DatosGraficoDTO();
				datoNuevo.setContadorInteresados(1);
				datoNuevo.setDia(sdf.format(interesStock.getFechaPrimerAcceso()));

				graficoDTO.getDatos().add(datoNuevo);
			}
		}

		return graficoDTO;
	}

}
